﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web.Mvc;

namespace Lilium.Web.Mvc
{
	/// <summary>
	/// Interface for script resource references.
	/// </summary>
	/// <remarks>
	/// Script resource references are used to render references for client script resources,
	/// wich are used to reference client scripts resources via <see cref="ScriptResourceController"/>.
	/// <see cref="IEquatable&ltIScriptResourceReference&gt"/> must be implemented to ensure 
	/// reference comprison by field values, not by references.
	/// </remarks>
	public interface IScriptResourceReference: IEquatable<IScriptResourceReference>
	{
		/// <summary>
		/// Renders script resource reference.
		/// </summary>
		/// <param name="ajaxHelper"></param>
		void Render(AjaxHelper ajaxHelper);

		string LibraryName { get; }

		string ResourceName { get; }
	}
}
